1. Field of the Invention
The present invention relates generally to digital information storage, and more particularly, to a disk drive having control means for responding to a read request from a host computer.
2. Background Information
As the design of disk drives has evolved, areal density improvements have outpaced most users"" near term ability to consume the storage capacity thus afforded. In addition, disk drives are equipped with microprocessor based controllers which allow for programmable functions to be incorporated in the drive. Because of the ubiquitous presence of disk drive-equipped personal computers that are connected to the internet, numerous efforts are being made by business entities to solicit personal computer users for purchase of goods and services. To date these efforts have not fully exploited the bountiful capacity and programmability of disk drives.
Conventional accessing of information on a disk media of a disk drive is exclusively controlled by a host computer, which issues read commands to the drive. In response to a read command for information stored on the disk media, the information requested is retrieved by the disk drive and returned to the host.
Accesses to the disk media are executed by the disk drive in a manner whereby information content expected by the host is returned to the host. However, because disk accesses are executed by the drive, the exact physical location of the disk accessed is not known to the host. For example, information storage management techniques embedded in the drive can include translating each logical block address (LBA) received from the host into a corresponding physical location on the drive represented as a cylinder/head/sector (CHS) location of the disk media. The LBAs are a sequence of addresses which correspond one-for-one to physical locations on the disk, but which need not correspond in sequence to the physical order of cylinder/head/sector locations on the disk. Thus, in a typical access, an LBA is issued by the host, and converted to a corresponding CHS so that expected information can be returned to the host.
In some special situations, a host computer attempt to access a physical CHS target location on the disk media which corresponds to a given LBA can result in an alternate CHS location of the disk being accessed by the drive for a variety of reasons. However, in these cases, the alternate location contains the original information expected by the host. For example, a particular sector of the drive which corresponds to the initial LBA may have become faulty (i.e., flawed, missing or otherwise unreadable), such that the access may be redirected to another mirrored sector where the identical information has been redundantly stored. Although it is known to provide a disk drive with a system for recovering information from the faulty sector using a combination of techniques including on-the-fly error correction in hardware, retries with varying parameters or head position, or a xe2x80x9cheroicxe2x80x9d mode whereby more extensive processing is used, some locations are simply unrecoverable.
Mirrored sectors are also used to improve the efficiency with which information is read from the disk media. For example, it is known to direct a read head of the disk drive to one of plural mirrored sectors which is closest in proximity to the location of the read head immediately prior to the read operation, thereby improving the speed with which the information stored in the mirrored sector is retrieved. The mirrored sectors are accessed by the host using the same LBA, even though the two identical sets of information are recorded at different physical (CHS) locations.
Thus, the information content supplied to the host in response to read requests is performed under control of the host. This host control begins immediately with a boot-up process. Basic operations associated with the booting up of a computer, under the control of the host, are described in U.S. Pat. No. 5,307,497, and in U.S. Pat. No. 5,978,912, the disclosures of which are hereby incorporated by reference in their entirety.
U.S. Pat. No. 5,307,497 describes a data processing system, such as a personal computer, which contains bootable DOS programs stored in a read-only memory. When the system is powered on, the programs are booted up, or loaded from the read-only memory into a random access memory, and instantly executed to place the system into operation. The read-only memory includes a basic input/output system (BIOS) and a power on self-test routine (POST). When the system power is first activated, or when the system is restarted, the POST performs the test and upon successful completion, boots a portion of a disk operating system (DOS) to transfer control to it. The system, under control of the host, looks to a fixed location in memory for a boot routine which loads the DOS kernel and starting system with a shell program.
U.S. Pat. No. 5,978,912 describes a similar boot process. Upon start-up or system reset, the POST of the host""s BIOS performs a hardware initialization. The POST then reads data from a predetermined location of a memory device, such as a disk drive, to load a boot strap loader program which in turn loads a larger program into memory. The larger program initializes the operating system.
Thus, the booting process is a fixed operation which begins with the host accessing a predetermined location of a disk drive connected to the host computer. Thereafter, read operations are performed under control of the operating system at the request of the host, and in satisfaction of information content expected by the host. There is a need therefore for a disk drive which is equipped to support a richer mix of business activities with personal computer users.
The present invention is directed to a disk drive which can assert control over the information content supplied in response to a read request from the host by performing a selective translation of addresses received from the host. The disk drive can include hardware, firmware, or a combination thereof, to unambiguously detect a command block from the host to read information from a predetermined location on the drive. The drive, upon detecting occurrence of a predetermined address included in the command block, translates the address to initiate a read from an alternate, substitute location. Information stored at the substitute location is returned to the requesting host in satisfaction of the host""s request. The information can be blocks of data, such as audio/video data, or can be executable code including, but not limited to, code used to boot a substitute operating system stored at a location known only to the drive.
Thus, the present invention is directed to a disk drive connectable to a host computer, comprising interface means for receiving a read request from the host computer referencing a first valid data block stored in a first block storage location on a disk of the disk drive; and control means for selectively satisfying the read request with a second valid data block stored in a second block storage location, wherein the first and second data blocks are different in content from each other. As referenced herein a xe2x80x9cvalidxe2x80x9d data block is a block of data on the drive which can be recovered and sent to the host using normal drive processing such as retries and error correction techniques. The control means can include a memory device and a microprocessor. The memory device includes a translation map for translating a predetermined reference to the first block storage location to a reference to the second block storage location.
The microprocessor is connected to the interface means and to the memory device to control storage of the translation map from the interface means into the memory device.
The memory device can include a translation enable/disable register for selectively enabling access to the translation map. The microprocessor controls storage of the translation enable/disable register in the memory device.
The microprocessor can store the translation map in response to an encrypted command, the control means including a decryption algorithm. The decryption algorithm can be stored in the memory device.
The first and second data blocks differ in content by at least a single bit. The first data block can be in a first range of data blocks addressed by the read request, and the second data block can be in a second range of data blocks, the first and second ranges of data blocks differing in content by at least a single bit. The first and second valid data blocks can, for example, represent executable code. In one example, the first valid data block corresponds to a boot sector on the disk, while in another example, the first and second valid data blocks correspond to audio/video information.